<?php

namespace Admin\Controller;

/**
 * Description of RoleController
 *
 * @author 阿明 symphp@foxmail.com
 */
class RoleController extends \Think\Controller {

    //创建模型对象
    private $_model = null;

    /**
     *
     * 初始化,遍历给每个页面
     */
    protected function _initialize() {

        //构建数据
        $meta_titles = array(
            'index' => '角色管理',
            'add' => '角色添加',
            'edit' => '角色修改',
            'delete' => '角色删除',
        );
        $meta_title = $meta_titles[ACTION_NAME];
        //发送数据
        $this->assign('meta_title', $meta_title);
        //创建模型对象
        $this->_model = D('Role');
    }
    /**
     * 显示首页
     */
    public function index() {
        //获取数据
        $rows = $this->_model->getRole();
        //发送数据
        $this->assign('rows',$rows);
        $this->display();
    }
    
    public function add(){
        if(IS_POST){
            $rows = $this->_model->create();
            if($rows===false){
                $this->error(get_error($this->_model->getError()));
            }
            if($this->_model->addRole($rows)===false){
                $this->error(get_error($this->_model->getError()));
            } else {
                $this->success('添加成功');
            }
        }else{
        //获取ztree需要的数据
        $this->display_view();
        //显示数据
        $this->display();
        }
    }
    /*
     * 编辑
     */
    public function edit($id){
        if(IS_POST){
            if($this->_model->create() === false){
                $this->error(get_error($this->_model->getError()));
            }
            if($this->_model->updateRole() === false){
                $this->error(get_error($this->_model->getError()));
            }
            $this->success('修改成功',U('index'));
        }else{
        //获取数据
        $rows = $this->_model->getRoleInfo($id);
        //发送数据
        $this->assign('rows',$rows);
        //调用发送ztree方法
        $this->display_view();
        //选择视图
        $this->display('add');
        }
    }
    
    /**
     * 逻辑删除数据
     * @param type $id
     */
    public function del($id){
        if($this->_model->_del_permission($id)===false){
            $this->error(get_error($this->_model->getError()));
        };
        $this->success('删除成功',U('index'));
    }

    /**
     * 创建一个公共函数用于传递数据
     */
    private function display_view(){
            //获取数据
            $permission = D('Permission')->getList('id,name,parent_id');
            //将数据转换成json
            $permission = json_encode($permission);
            //发送数据
            $this->assign('permission', $permission);
    }

}
